#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<stack>

using namespace std;


class MinStack {
public:
    MinStack()
    {}

    void push(int val)
    {
        s.push(val);
        if (mins.empty())
        {
            mins.push(val);
        }
        else if (!mins.empty() && val <= mins.top())
        {
            mins.push(val);
        }
    }

    void pop()
    {
        if (!mins.empty() && !s.empty() && s.top() == mins.top())
            mins.pop();

        if (!s.empty())
            s.pop();
    }

    int top()
    {
        return s.top();
    }

    int getMin()
    {
        return mins.top();
    }

    stack<int> s;
    stack<int> mins;
};


int main()
{

	return 0;
}